#ifndef FOUNDATION_H
#define FOUNDATION_H

#include "Deck.h"

/************************************************************************/
/* Classe Foundation
/* Defini��es da classe que representa um deck de funda��o no jogo Calculo
/************************************************************************/
class Foundation : public Deck
{
public:

    /** Quatro tipo de funda��o que existem no jogo */
    enum FoundationType
    {
        SINGLE,
        DOUBLE,
        TRIPLE,
        QUADRUPLE
    };
    
    /**
     * Construtor
     * @param[in] type Tipo de fundação que o deck representa
     */
    Foundation( FoundationType type );

    /** Destrutor */
    ~Foundation();

    /**
     * Insere uma carta no topo do deck de funda��o
     * @param[in] card Carta a ser inserida.
     * @return true, se a carta foi inserida.
     */
    bool insert( Card* card );

private:

    FoundationType _type;
};

#endif  //FOUNDATION_H
